package com.simtop.car.mapper;

import com.simtop.car.pojo.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

@Mapper
public interface SourceMapper {

    List<Source> getSource();


    List<FieldMapping> getFieldMapping(@Param("fieldSourceId") Integer fieldSourceId);


    List<WeiBo> getWeiBo(@Param("date") Date date,@Param("nowDate") Date nowDate,@Param("brandType") String[] brandType);

    List<WeChat> getWeChat(@Param("date") Date date,@Param("nowDate") Date nowDate,@Param("brandType") String[] brandType);

    List<News> getNews(@Param("date") Date date,@Param("nowDate") Date nowDate,@Param("brandType") String[] brandType);


    List<Recruitment> getRecruitment(@Param("date") Date date,@Param("nowDate") Date nowDate,@Param("brandType") String[] brandType);

    List<Patent> getPatent(@Param("date") Date date,@Param("nowDate") Date nowDate,@Param("brandType") String[] brandType);

    List<CompanyWebsite> getCompanyWebsite(@Param("date") Date date,@Param("nowDate") Date nowDate,@Param("brandType") String[] brandType);

    List<CommunityForum> getCommunityForum(@Param("date") Date date,@Param("nowDate") Date nowDate,@Param("brandType") String[] brandType);

    List<CorporateAnnualReports> getCorporateAnnualReports(@Param("date") Date date,@Param("nowDate") Date nowDate,@Param("brandType") String[] brandType);

    List<BusinessInformation> getBusinessInformation(@Param("date") Date date,@Param("nowDate") Date nowDate,@Param("brandType") String[] brandType);

    List<WeiBo> getWeiBoByIntegration(@Param("fieldMapping") String fieldMapping,@Param("date") Date date,@Param("nowDate") Date nowDate,@Param("brandType") String[] brandType,@Param("userId") Integer userId);

    List<WeChat> getWeChatByIntegration(@Param("fieldMapping") String fieldMapping,@Param("date") Date date,@Param("nowDate") Date nowDate,@Param("brandType") String[] brandType,@Param("userId") Integer userId);

    List<News> getNewsByIntegration(@Param("fieldMapping") String fieldMapping,@Param("date") Date date,@Param("nowDate") Date nowDate,@Param("brandType") String[] brandType,@Param("userId") Integer userId);

    List<Recruitment> getRecruitmentByIntegration(@Param("fieldMapping") String fieldMapping,@Param("date") Date date,@Param("nowDate") Date nowDate,@Param("brandType") String[] brandType,@Param("userId") Integer userId);

    List<Patent> getPatentByIntegration(@Param("fieldMapping") String fieldMapping,@Param("date") Date date,@Param("nowDate") Date nowDate,@Param("brandType") String[] brandType,@Param("userId") Integer userId);

    List<CompanyWebsite> getCompanyWebsiteByIntegration(@Param("fieldMapping") String fieldMapping,@Param("date") Date date,@Param("nowDate") Date nowDate,@Param("brandType") String[] brandType,@Param("userId") Integer userId);

    List<CommunityForum> getCommunityForumByIntegration(@Param("fieldMapping") String fieldMapping,@Param("date") Date date,@Param("nowDate") Date nowDate,@Param("brandType") String[] brandType,@Param("userId") Integer userId);

    List<CorporateAnnualReports> getCorporateAnnualReportsByIntegration(@Param("fieldMapping") String fieldMapping,@Param("date") Date date,@Param("nowDate") Date nowDate,@Param("brandType") String[] brandType,@Param("userId") Integer userId);

    List<BusinessInformation> getBusinessInformationByIntegration(@Param("fieldMapping") String fieldMapping,@Param("date") Date date,@Param("nowDate") Date nowDate,@Param("brandType") String[] brandType,@Param("userId") Integer userId);

    ConformityMapping getConformityMapping(@Param("s") String s);

    void insertConformityData(List<ConformityData> conformityDataList1);

    Date dataLateDateWeibo(@Param("array") String[] brandType);

    Date dataReleaseDateWeibo(@Param("array") String[] brandType);

    Date dataLateDateWeChat( @Param("array") String[] brandType);

    Date dataReleaseDateWeChat( @Param("array") String[] brandType);

    Date dataReleaseDateNews(@Param("array") String[] brandType);

    Date dataLateDateNews(@Param("array") String[] brandType);

    Date dataReleaseDateRecruitment(@Param("array") String[] brandType);

    Date dataLateDateRecruitment(@Param("array") String[] brandType);

    Date dataReleaseDatePatent(@Param("array") String[] brandType);

    Date dataLateDatePatent(@Param("array") String[] brandType);

    Date dataReleaseDateCompanyWebsite(@Param("array") String[] brandType);

    Date dataLateDateCompanyWebsite(@Param("array") String[] brandType);

    Date dataReleaseDateCommunityForum( @Param("array") String[] brandType);

    Date dataLateDateCommunityForum(@Param("array") String[] brandType);

    Date dataReleaseDateCorporateAnnualReports(@Param("array") String[] brandType);

    Date dataLateDateCorporateAnnualReports(@Param("array") String[] brandType);

    Date dataReleaseDateBusinessInformation(@Param("array") String[] brandType);

    Date dataLateDateBusinessInformation(@Param("array") String[] brandType);

    List<BusinessInformation> getDisplayDataBusinessInformation(@Param("carProduct") String[] carProduct);

    List<DisplayDataNews> getDisplayDataNews(@Param("brandType") String[] brandType,@Param("uId") Integer uId,@Param("type") Integer type,@Param("uuid") String uuid);


    List<DisplayDataNews> getDisplayDataPatent(@Param("brandType") String[] brandType, @Param("data") String data, @Param("uId") Integer uId,@Param("uuid")String uuid);

    Integer getTotalDataCount(@Param("brandType") String[] brandType, @Param("uId") Integer uId,@Param("uuid") String uuid);

    List<ConformityData> getPatentClassificationNo(@Param("brandType") String[] brandType, @Param("uId") Integer uId,@Param("uuid") String uuid);
    

    Integer getTotalDataCountById(Integer uId);


    List<ConformityData> filterConsolidatedData(@Param("brandType") String[] brandTypes,@Param("uId") Integer uId,String source);

    List<FieldMapping> getSourceField(@Param("sourceId") Integer sourceId);

    List<String> getWeiBoWordFrequency(@Param("brandType") String[] brandType, @Param("fieldMapping") String fieldMapping);

    List<String> getWeChatWordFrequency(@Param("brandType") String[] brandType, @Param("fieldMapping") String fieldMapping);

    List<String> getNewsWordFrequency(@Param("brandType") String[] brandType, @Param("fieldMapping") String fieldMapping);

    List<String> getRecruitmentWordFrequency(@Param("brandType") String[] brandType, @Param("fieldMapping") String fieldMapping);

    List<String> getPatentWordFrequency(@Param("brandType") String[] brandType, @Param("fieldMapping") String fieldMapping);

    List<String> getCompanyWebsiteWordFrequency(@Param("brandType") String[] brandType, @Param("fieldMapping") String fieldMapping);

    List<String> getCommunityForumWordFrequency(@Param("brandType") String[] brandType, @Param("fieldMapping") String fieldMapping);

    List<String>  getCorporateAnnualReportsWordFrequency(@Param("brandType") String[] brandType, @Param("fieldMapping") String fieldMapping);

    List<String> getBusinessInformationWordFrequency(@Param("brandType") String[] brandType, @Param("fieldMapping") String fieldMapping);

    void deleteExperiment(@Param("id") Integer id);

    void deleteQuarter(Integer id);

    void deleteConformityData(@Param("userId") Integer id);
}
